package com.briup.day12;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * @author lining
 * @date 2024/1/23 14:08
 */
public class TestHashset {

    /*阅读 hashset如何实现存储元素*/
    public static void main(String[] args) {
        //Set是一种无序（存入 取出 顺序）的集合
        Set<Integer> set = new HashSet();
        set.add(5);
        /*
            set.add(5)
            //将元素为hashMap的key值使用，存储时，会计算哈希值导致顺序发生改变
            map.put(5,new Object);

         */
        set.add(3);
        set.add(1);
        set.add(2);
        set.add(4);
        System.out.println(set);//所有元素信息
        //获取set集合元素
        for(Integer num : set){
            System.out.println("set集合元素："+num);
        }
        //通过迭代器
        Iterator<Integer> iterator = set.iterator();
        while (iterator.hasNext()){
            Integer n = iterator.next();
            System.out.println("set集合元素:"+n);
        }
        //只获取其中的元素5
        ArrayList<Integer> list = new ArrayList<>(set);
        System.out.println("元素5:"+list.get(4));
        //set集合转换为数组
        Object[] arr = set.toArray();
        System.out.println("元素5："+arr[4]);
        /*
            不能存放重复数据的集合，HashSet中不允许重复的元素，即每个元素都是唯一的。
            作为hashMap的key值使用。不能重复
         */
        set.add(1);
        set.add(5);
        set.add(null);//可以存储null
        System.out.println(set);
        //删除元素
        set.remove(3);
        System.out.println(set);
    }
}
